package modelo.dominio;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

@Entity
@Table(name ="Pessoa", schema="LocarraoDB")
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa implements Serializable {
	
	@Id
	@Column(unique=true, nullable=false)
	private long cpf;
	
	@Column(length=50, nullable=false)
	private String nome;
		
	@Column(length=100, nullable=false)
	private String endereco;
	
	@Column(length=15)
	private String telefone;

	public Pessoa(){}

	public Pessoa(String nome){
		this.nome = nome;
	}

	public Pessoa(String nome, long cpf, String endereco, String telefone){
		this(nome);
		this.endereco = endereco;
		this.cpf = cpf;
		this.telefone = telefone;           
	}

	public Pessoa(long cpf){
		this.cpf = cpf;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEndereco(){
		return this.endereco;
	}

	public void setEndereco(String endereco){
		this.endereco = endereco;            
	}

	public long getCpf(){
		return this.cpf;
	}

	public void setCpf(long cpf){
		this.cpf = cpf;
	}

	public String getTelefone(){
		return this.telefone;
	}

	public void setTelefone(String telefone){
		this.telefone = telefone;
	}

	@Override
	public String toString() {
		return "Nome: " + this.nome +
			  "\nCPF: " + this.cpf +
			  "\nEndereço: " + this.endereco +
			  "\nTelefone: " + this.telefone;
	}
	
	
}
